\begin{problem}{Шаблоны}
{patterns.in}{patterns.out}
{5 секунд}{256 мегабайт}

Многие операционные системы используют шаблоны для ссылки на группы объектов:
файлов, пользователей, и~т.~д. Ваша задача --- реализовать простейший алгоритм
проверки шаблонов для имен файлов.

В этой задаче алфавит состоит из маленьких букв английского алфавита и точки
(`\texttt{.}'). Шаблоны могут содержать произвольные символы алфавита, а также
два специальных символа: `\texttt{?}' и `\texttt{*}'.
Знак вопроса (`\texttt{?}') соответствует ровно одному произвольному символу.
Звездочка `\texttt{*}' соответствует подстроке 
произвольной длины (возможно, нулевой). Символы алфавита, встречающиеся в 
шаблоне,
отображаются на ровно один такой же символ в проверяемой строчке.
Строка считается подходящей под шаблон, если символы шаблона можно 
последовательно отобразить на символы строки таким образом, как описано выше.
Например, строчки ``\texttt{ab}'', ``\texttt{aab}'' и ``\texttt{beda.}
подходят под шаблон 
``\texttt{*a?}'', 
а строчки ``\texttt{bebe}'', ``\texttt{a}'' и ``\texttt{ba}'' --- нет.

\InputFile

Первая строка входного файла определяет шаблон $P$. Вторая строка 
$S$ состоит только из символов алфавита.
Ее необходимо проверить на соответствие шаблону. Длины обеих строк не
превосходят $10\,000$. Строки могут быть пустыми --- будьте внимательны!

\OutputFile

Если данная строка подходит под шаблон, выведите \texttt{YES}. Иначе
выведите \texttt{NO}.

\Examples

\begin{example}
\exmp{
k?t*n
kitten
}{
YES
}%
\exmp{
k?t?n
kitten
}{
NO
}%
\end{example}

\end{problem}
